package 传智播客_黑马.java基础.Genericity泛型.Generic_with_method;

import java.util.ArrayList;
import java.util.Iterator;

public class learnFanXing {
    public static void main(String[] args) {
//        show01();
//        show02();
    }

    /*
    创建集合对象,使用泛型
    好处:
        避免了类型转换的麻烦,存储的是什么类型,取出的就是什么类型
        将运行期异常,提升至了编译期异常
    弊端:
        只能存储单一类型的数据.
     */
    private static void show02() {
        ArrayList<String> list = new ArrayList<>();
        list.add("这是数据一");
        /*
        只能是单一类型
         */
        System.out.println(list);
    }

    /*
    创建集合对象,不使用泛型
    好处:
        集合不使用泛型,默认的就是object类型,可以存储任意类型的数据
    弊端:
        不安全,会引发异常
     */
    private static void show01() {
        ArrayList arrayList = new ArrayList();//不使用泛型
        arrayList.add("第一个数据");
        arrayList.add(23);
        arrayList.add('A');
        /*
        可以添加各种类型的数据
         */

//        System.out.println(arrayList);

        /*
        使用迭代器读取.
         */
        Iterator it = arrayList.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
        System.out.println("=================");

        /*
        使用增强for遍历
         */
        for (Object t:arrayList){
            System.out.println(t);
        }
        System.out.println("==================");

        /*
        用普通for循环遍历
         */
        for (int i = 0; i < arrayList.size(); i++) {
            System.out.println(arrayList.get(i));
        }

    }
}
